using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
using Com.AlbLab.GEP.Domain.Entities;
using Com.AlbLab.GEP.Domain.Entities.Standard;

namespace Com.AlbLab.GEP.Domain.Entities.Standard
{
    public class PST_M02_Messa_a_disposizione_di_altri_dati_tecnici : BASE_PraticaStandard
    {

        GEP_DATIM02 _PraticaDB;
        public PST_M02_Messa_a_disposizione_di_altri_dati_tecnici( )
            : base()
        {
         
        }

        // **
        // Durante la creazione della pratica vengono valorizzati la tipologia della pratica Standard/Non Standard
        // E la lista dei controlli per i campi che si hanno dal foglio recapitato dal distributore
        // **
        public PST_M02_Messa_a_disposizione_di_altri_dati_tecnici(System.Data.DataColumnCollection cols, System.Data.DataRow dr)
            : base(cols, dr)
        {
            this.ListaControlliValori.Add(new string[] { "rag_soc", "1", null, null, null, null, null });
            this.ListaControlliValori.Add(new string[] { "cognome", "1", null, null, null, null, null });
            this.ListaControlliValori.Add(new string[] { "nome", "1", null, null, null, null, null });
            this.ListaControlliValori.Add(new string[] { "toponimo", "1", null, null, null, null, null });
            this.ListaControlliValori.Add(new string[] { "via", "1", null, null, null, null, null });
            this.ListaControlliValori.Add(new string[] { "civ", "1", null, null, null, null, null });
            this.ListaControlliValori.Add(new string[] { "scala", "1", null, null, null, null, null });
            this.ListaControlliValori.Add(new string[] { "piano", "1", null, null, null, null, null });
            this.ListaControlliValori.Add(new string[] { "int", "1", null, null, null, null, null });
            this.ListaControlliValori.Add(new string[] { "cap", "1", null, null, null, null, null });
            this.ListaControlliValori.Add(new string[] { "istat", "1", null, null, null, null, null });
            this.ListaControlliValori.Add(new string[] { "comune", "1", null, null, null, null, null });
            this.ListaControlliValori.Add(new string[] { "prov", "1", null, null, null, null, null });
            this.ListaControlliValori.Add(new string[] { "cod_reclamo", "1", null, null, null, null, null });
            this.ListaControlliValori.Add(new string[] { "rif_reclamo", "1", null, null, null, null, null });
            this.ListaControlliValori.Add(new string[] { "dati_tec_ric", "1", null, null, null, null, null });
            this.ListaControlliValori.Add(new string[] { "rif_quesiti", "1", null, null, null, null, null });
        }

        public override string CodiceServizio
        {
            get { return "M02"; }
        }

        public override string DescrizioneServizio
        {
            get { return "Disattivazione della fornitura su richiesta del cliente finale."; }
        }

        public override object RecordDB
        {
            get 
            { 
                return _PraticaDB;
            }
            set 
            { 
                _PraticaDB = (GEP_DATIM02)value;
                IsSaved = true;
            }
        }

        public override void CaricaPraticaDB() {

            _PraticaDB = new GEP_DATIM02((decimal)DBCodicePratica);
            IsSaved = true;
            FromDB = true;
            FromFile=false;
        }

        public override void SalvaPraticaDB()
        {
            _PraticaDB = new GEP_DATIM02(-1);
            _PraticaDB.Gep_testata.Tes_Cod_Servizio = this.CodiceServizio;
            _PraticaDB.Gep_testata.Tes_Piva_Utente = (string)RecordRaw[LCS_piva_utente];
            _PraticaDB.Gep_testata.Tes_Piva_Distributore = (string)RecordRaw[LCS_piva_distr];
            _PraticaDB.Gep_testata.Tes_Cod_Prat_Utente = (string)RecordRaw[LCS_cod_prat_distr];
            _PraticaDB.Gep_testata.Tes_Cod_Contr_Disp = (string)RecordRaw[LCS_cod_contr_disp];
            _PraticaDB.Gep_testata.Tes_Pod = (string)RecordRaw[LCS_pod];
            _PraticaDB.Gep_testata.Tes_Codfis_Cli = (string)RecordRaw[LCS_codfis_cliente];
            _PraticaDB.Gep_testata.Tes_Pariva_Cli = (string)RecordRaw[LCS_piva_cliente];
            //_PraticaDB.Gep_testata.Tes_Tel_Cli = (string)RecordRaw["tel"];
            _PraticaDB.Gep_testata.Tes_Note = (string)RecordRaw["note"];
            _PraticaDB.Dm02_Rag_Soc = (string)RecordRaw["rag_soc"];
            _PraticaDB.Dm02_Cognome = (string)RecordRaw[ "cognome"];
            _PraticaDB.Dm02_Nome = (string)RecordRaw["nome"];
            _PraticaDB.Dm02_Toponimo = (string)RecordRaw["toponimo"];
            _PraticaDB.Dm02_Via = (string)RecordRaw["via"];
            _PraticaDB.Dm02_Civ = (string)RecordRaw[ "civ"];
            _PraticaDB.Dm02_Scala = (string)RecordRaw["scala"];
            _PraticaDB.Dm02_Piano = (string)RecordRaw["piano"];
            _PraticaDB.Dm02_Int = (string)RecordRaw["int"];
            _PraticaDB.Dm02_Cap = (string)RecordRaw[ "cap"];
            _PraticaDB.Dm02_Istat = (string)RecordRaw["istat"];
            _PraticaDB.Dm02_Comune = (string)RecordRaw["comune"];
            _PraticaDB.Dm02_Prov = (string)RecordRaw["prov"];
            _PraticaDB.Dm02_Cod_Reclamo = (string)RecordRaw["cod_reclamo"];
            _PraticaDB.Dm02_Rif_Reclamo = (string)RecordRaw["rif_reclamo"];
            _PraticaDB.Dm02_Dati_Tec_Ric = (string)RecordRaw["dati_tec_ric"];
            _PraticaDB.Dm02_Rif_Quesiti = (string)RecordRaw["rif_quesiti"];
        }

        public override GEP_TESTATA GEP_testata
        {
            get
            {
                return _PraticaDB.Gep_testata;
            }
        }
    }
}
